import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:oktoast/oktoast.dart';
import 'package:provider/provider.dart';
import 'package:ycbl/config/bl_color.dart';
import 'package:ycbl/config/route_manager.dart';
import 'package:ycbl/config/theme_config.dart';
import 'package:ycbl/config/top_providers.dart';
import 'package:ycbl/ext/common_ext.dart' show ColorExt;
import 'package:ycbl/utils/PrefUtil.dart'; //只导入 color 扩展
import 'package:ycbl/utils/wx_util.dart';

void main() async {
  // 在 runApp 之前启动插件，需要先初始化 WidgetsFlutterBinding
  // Flutter 团队已经对第一帧的问题进行过处理（release 模式下优化，但 debug 模式还是可能会有短暂黑屏）
  // flutter 端如果没有渲染 ui, 会一直在 native 的 splash 页面. 直到渲染帧.
  WidgetsFlutterBinding.ensureInitialized();

  //初始化 SharePreference
  await PrefUtil.init();

  // 初始化微信能力
  await WxUtil().registerWxApi();

  runApp(MyApp());

  SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
    statusBarColor: Colors.transparent, // Android 修改状态栏透明
    //statusBarIconBrightness: Brightness.dark,// 如果需要状态栏文字为黑色可以设置这个属性
  ));
}

/// 程序入口
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return OKToast( //吐司：在最顶层包裹一次，就可以在 App 所有页面使用 showToast
        child: MultiProvider(
          providers: topProviders,
          child: MaterialApp(
            debugShowCheckedModeBanner:false,
            //应用程序标题：Android 任务管理器的程序快照上 or iOS 程序切换管理器中
            title: "英才百利",
            theme: ThemeConfig.configTheme(BLColor.primaryColor.toMaterialColor(), BLColor.accentColor.toMaterialColor()),
            //路由回调函数，当通过 Navigator.of(context).pushNamed 跳转路由时，（在 routes 中查找不到时）会调用该方法
            onGenerateRoute: BLRouter.generateRoute,
            //初始路由
            initialRoute: BLRouteName.splash,
          ),
        )
    );
  }
}


